<!DOCTYPE html>
<html>

<head>
  <title>Quarkus - Using Liquibase</title>
  <script id="adobe_dtm" src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
  <script src="/assets/javascript/highlight.pack.js" type="text/javascript"></script>
  <META HTTP-EQUIV='Content-Security-Policy' CONTENT="default-src 'none'; script-src 'self' 'unsafe-eval' 'sha256-ANpuoVzuSex6VhqpYgsG25OHWVA1I+F6aGU04LoI+5s=' 'sha256-ipy9P/3rZZW06mTLAR0EnXvxSNcnfSDPLDuh3kzbB1w=' js.bizographics.com https://www.redhat.com assets.adobedtm.com jsonip.com https://ajax.googleapis.com https://www.googletagmanager.com https://www.google-analytics.com https://use.fontawesome.com; style-src 'self' https://fonts.googleapis.com https://use.fontawesome.com; img-src 'self' *; media-src 'self' ; frame-src https://www.googletagmanager.com https://www.youtube.com; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; form-action 'none'; font-src 'self' https://use.fontawesome.com https://fonts.gstatic.com;">
  <META HTTP-EQUIV='X-Frame-Options' CONTENT="DENY">
  <META HTTP-EQUIV='X-XSS-Protection' CONTENT="1; mode=block">
  <META HTTP-EQUIV='X-Content-Type-Options' CONTENT="nosniff">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Quarkus: Supersonic Subatomic Java">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@QuarkusIO"> 
  <meta name="twitter:creator" content="@QuarkusIO">
  <meta property="og:url" content="https://quarkus.io/guides/liquibase" />
  <meta property="og:title" content="Quarkus - Using Liquibase" />
  <meta property="og:description" content="Quarkus: Supersonic Subatomic Java" />
  <meta property="og:image" content="/assets/images/quarkus_card.png" />
  <link rel="canonical" href="https://quarkus.io/guides/liquibase">
  <link rel="shortcut icon" type="image/png" href="/favicon.ico" >
  <link rel="stylesheet" href="https://quarkus.io/guides/stylesheet/config.css" />
  <link rel="stylesheet" href="/assets/css/main.css" />
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
  <link rel="alternate" type="application/rss+xml"  href="https://quarkus.io/feed.xml" title="Quarkus">
  <script src="https://quarkus.io/assets/javascript/goan.js" type="text/javascript"></script>
  <script src="https://quarkus.io/assets/javascript/hl.js" type="text/javascript"></script>
</head>

<body class="guides">
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJWS5L"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

  <div class="nav-wrapper">
  <div class="grid-wrapper">
    <div class="width-12-12">
      <input type="checkbox" id="checkbox" />
      <nav id="main-nav" class="main-nav">
  <div class="container">
    <div class="logo-wrapper">
      
        <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_600px_reverse.png" class="project-logo" title="Quarkus"></a>
      
    </div>
    <label class="nav-toggle" for="checkbox">
      <i class="fa fa-bars"></i>
    </label>
    <div id="menu" class="menu">
      <span>
        <a href="/get-started/" class="">Get Started</a>
      </span>
      <span>
        <a href="/guides/" class="active">Guides</a>
      </span>
      <span>
        <a href="/community/" class="">Community</a>
      </span>
      <span>
        <a href="/support/" class="">Support</a>
      </span>
      <span>
        <a href="/blog/" class="">Blog</a>
      </span>
      <span>
        <a href="https://code.quarkus.io" class="button-cta secondary white">Start Coding</a>
      </span>
    </div>
  </div>
      </nav>
    </div>
  </div>
</div>

  <div class="content">
    <div class="guide">
  <div class="width-12-12">
    <h1 class="text-caps">Quarkus - Using Liquibase</h1>
    <div class="hide-mobile toc"><ul class="sectlevel1">
<li><a href="#setting-up-support-for-liquibase">Setting up support for Liquibase</a></li>
<li><a href="#multiple-datasources">Multiple datasources</a></li>
<li><a href="#using-the-liquibase-object">Using the Liquibase object</a></li>
<li><a href="#configuration-reference">Configuration Reference</a></li>
</ul></div>
    <div>
      <div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://www.liquibase.org/">Liquibase</a> is an open source tool for database schema change management.</p>
</div>
<div class="paragraph">
<p>Quarkus provides first class support for using Liquibase as will be explained in this guide.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="setting-up-support-for-liquibase"><a class="anchor" href="#setting-up-support-for-liquibase"></a>Setting up support for Liquibase</h2>
<div class="sectionbody">
<div class="paragraph">
<p>To start using Liquibase with your project, you just need to:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>add your changeLog to the <code>src/main/resources/db/changeLog.xml</code> file as you usually do with Liquibase</p>
</li>
<li>
<p>activate the <code>migrate-at-start</code> option to migrate the schema automatically or inject the <code>Liquibase</code> object and run
your migration as you normally do.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>In your <code>pom.xml</code>, add the following dependencies:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>the Liquibase extension</p>
</li>
<li>
<p>your JDBC driver extension (<code>quarkus-jdbc-postgresql</code>, <code>quarkus-jdbc-h2</code>, <code>quarkus-jdbc-mariadb</code>, &#8230;&#8203;)</p>
</li>
</ul>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;dependencies&gt;
    &lt;!-- Liquibase specific dependencies --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;io.quarkus&lt;/groupId&gt;
        &lt;artifactId&gt;quarkus-liquibase&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;!-- JDBC driver dependencies --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;io.quarkus&lt;/groupId&gt;
        &lt;artifactId&gt;quarkus-jdbc-postgresql&lt;/artifactId&gt;
    &lt;/dependency&gt;
&lt;/dependencies&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Liquibase support relies on the Quarkus datasource config.
It can be customized for the default datasource as well as for every <a href="#multiple-datasources">named datasource</a>.
First, you need to add the datasource config to the <code>application.properties</code> file
in order to allow Liquibase to manage the schema.</p>
</div>
<div class="paragraph">
<p>The following is an example for the <code>application.properties</code> file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="properties" class="language-properties hljs"># configure your datasource
quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=sarah
quarkus.datasource.password=connor
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/mydatabase

# Liquibase minimal config properties
quarkus.liquibase.migrate-at-start=true

# Liquibase optional config properties
# quarkus.liquibase.change-log=db/changeLog.xml
# quarkus.liquibase.validate-on-migrate=true
# quarkus.liquibase.clean-at-start=false
# quarkus.liquibase.database-change-log-lock-table-name=DATABASECHANGELOGLOCK
# quarkus.liquibase.database-change-log-table-name=DATABASECHANGELOG
# quarkus.liquibase.contexts=Context1,Context2
# quarkus.liquibase.labels=Label1,Label2
# quarkus.liquibase.default-catalog-name=DefaultCatalog
# quarkus.liquibase.default-schema-name=DefaultSchema
# quarkus.liquibase.liquibase-catalog-name=liquibaseCatalog
# quarkus.liquibase.liquibase-schema-name=liquibaseSchema
# quarkus.liquibase.liquibase-tablespace-name=liquibaseSpace</code></pre>
</div>
</div>
<div class="paragraph">
<p>Add a changeLog file to the default folder following the Liquibase naming conventions: <code>src/main/resources/db/changeLog.xml</code>
The yaml, json, xml and sql changeLog file formats are also supported.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="xml" class="language-xml hljs">&lt;?xml version="1.1" encoding="UTF-8" standalone="no"?&gt;
&lt;databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext
    http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
    http://www.liquibase.org/xml/ns/dbchangelog
    http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd"&gt;

    &lt;changeSet author="quarkus" id="1"&gt;
        &lt;createTable tableName="quarkus"&gt;
            &lt;column name="ID" type="VARCHAR(255)"&gt;
                &lt;constraints nullable="false"/&gt;
            &lt;/column&gt;
            &lt;column name="NAME" type="VARCHAR(255)"/&gt;
        &lt;/createTable&gt;
    &lt;/changeSet&gt;
&lt;/databaseChangeLog&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Now you can start your application and Quarkus will run the Liquibase&#8217;s update method according to your config:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">import org.quarkus.liquibase.LiquibaseFactory; <i class="conum" data-value="1"></i><b>(1)</b>

@ApplicationScoped
public class MigrationService {
    // You can Inject the object if you want to use it manually
    @Inject
    LiquibaseFactory liquibaseFactory; <i class="conum" data-value="2"></i><b>(2)</b>

    public void checkMigration() {
        // Get the list of liquibase change set statuses
        try (Liquibase liquibase = liquibaseFactory.createLiquibase()) {
            List&lt;ChangeSetStatus&gt; status = liquibase.getChangeSetStatuses(liquibaseFactory.createContexts(), liquibaseFactory.createLabels());
        }
    }
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>The Quarkus extension provides a factory to initialize a Liquibase instance</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>Inject the Quarkus liquibase factory if you want to use the liquibase methods directly</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="multiple-datasources"><a class="anchor" href="#multiple-datasources"></a>Multiple datasources</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Liquibase can be configured for multiple datasources.
The Liquibase properties are prefixed exactly the same way as the named datasources, for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="properties" class="language-properties hljs">quarkus.datasource.db-kind=h2
quarkus.datasource.username=username-default
quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default
quarkus.datasource.jdbc.min-size=3
quarkus.datasource.jdbc.max-size=13

quarkus.datasource.users.db-kind=h2
quarkus.datasource.users.username=username1
quarkus.datasource.users.jdbc.url=jdbc:h2:tcp://localhost/mem:users
quarkus.datasource.users.jdbc.min-size=1
quarkus.datasource.users.jdbc.max-size=11

quarkus.datasource.inventory.db-kind=h2
quarkus.datasource.inventory.username=username2
quarkus.datasource.inventory.jdbc.url=jdbc:h2:tcp://localhost/mem:inventory
quarkus.datasource.inventory.jdbc.min-size=2
quarkus.datasource.inventory.jdbc.max-size=12

# Liquibase configuration for the default datasource
quarkus.liquibase.schemas=DEFAULT_TEST_SCHEMA
quarkus.liquibase.change-log=db/changeLog.xml
quarkus.liquibase.migrate-at-start=true

# Liquibase configuration for the "users" datasource
quarkus.liquibase.users.schemas=USERS_TEST_SCHEMA
quarkus.liquibase.users.change-log=db/users.xml
quarkus.liquibase.users.migrate-at-start=true

# Liquibase configuration for the "inventory" datasource
quarkus.liquibase.inventory.schemas=INVENTORY_TEST_SCHEMA
quarkus.liquibase.inventory.change-log=db/inventory.xml
quarkus.liquibase.inventory.migrate-at-start=true</code></pre>
</div>
</div>
<div class="paragraph">
<p>Notice there&#8217;s an extra bit in the key.
The syntax is as follows: <code>quarkus.liquibase.[optional name.][datasource property]</code>.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Without configuration, Liquibase is set up for every datasource using the default settings.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="using-the-liquibase-object"><a class="anchor" href="#using-the-liquibase-object"></a>Using the Liquibase object</h2>
<div class="sectionbody">
<div class="paragraph">
<p>In case you are interested in using the <code>Liquibase</code> object directly, you can inject it as follows:</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
If you enabled the <code>quarkus.liquibase.migrate-at-start</code> property, by the time you use the Liquibase instance,
Quarkus will already have run the migrate operation.
</td>
</tr>
</table>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code data-lang="java" class="language-java hljs">import org.quarkus.liquibase.LiquibaseFactory;

@ApplicationScoped
public class MigrationService {
    // You can Inject the object if you want to use it manually
    @Inject
    LiquibaseFactory liquibaseFactory; <i class="conum" data-value="1"></i><b>(1)</b>

    @Inject
    @LiquibaseDataSource("inventory") <i class="conum" data-value="2"></i><b>(2)</b>
    LiquibaseFactory liquibaseFactoryForInventory;

    @Inject
    @Named("liquibase_users") <i class="conum" data-value="3"></i><b>(3)</b>
    LiquibaseFactory liquibaseFactoryForUsers;

    public void checkMigration() {
        // Use the liquibase instance manually
        try (Liquibase liquibase = liquibaseFactory.createLiquibase()) {
            liquibase.dropAll(); <i class="conum" data-value="4"></i><b>(4)</b>
            liquibase.validate();
            liquibase.update(liquibaseFactory.createContexts(), liquibaseFactory.createLabels());
            // Get the list of liquibase change set statuses
            List&lt;ChangeSetStatus&gt; status = liquibase.getChangeSetStatuses(liquibaseFactory.createContexts(), liquibaseFactory.createLabels()); <i class="conum" data-value="5"></i><b>(5)</b>
        }
    }
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>Inject the LiquibaseFactory object</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>Inject Liquibase for named datasources using the Quarkus <code>LiquibaseDataSource</code> qualifier</td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td>Inject Liquibase for named datasources</td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td>Use the Liquibase instance directly</td>
</tr>
<tr>
<td><i class="conum" data-value="5"></i><b>5</b></td>
<td>List of applied or not applied liquibase ChangeSets</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="configuration-reference"><a class="anchor" href="#configuration-reference"></a>Configuration Reference</h2>
<div class="sectionbody">
<div class="paragraph configuration-legend">
<p><span class="icon"><i class="fa fa-lock" title="Fixed at build time"></i></span> Configuration property fixed at build time - All other configuration properties are overridable at runtime</p>
</div>
<table class="tableblock frame-all grid-all stretch configuration-reference searchable">
<colgroup>
<col style="width: 80%;">
<col style="width: 10%;">
<col style="width: 10%;">
</colgroup>
<tbody>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock"><a id="quarkus-liquibase_configuration"></a><a href="#quarkus-liquibase_configuration">Configuration property</a></p></th>
<th class="tableblock halign-left valign-middle"><p class="tableblock">Type</p></th>
<th class="tableblock halign-left valign-middle"><p class="tableblock">Default</p></th>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><span class="icon"><i class="fa fa-lock" title="Fixed at build time"></i></span> <a id="quarkus-liquibase_quarkus.liquibase.change-log"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.change-log">quarkus.liquibase.change-log</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The liquibase change log file. All included change log files in this file are scanned and add to the projects.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>db/changeLog.xml</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.migrate-at-start"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.migrate-at-start">quarkus.liquibase.migrate-at-start</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p><code>true</code> to execute Liquibase automatically when the application starts, <code>false</code> otherwise.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.validate-on-migrate"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.validate-on-migrate">quarkus.liquibase.validate-on-migrate</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p><code>true</code> to validate the applied changes against the available ones, <code>false</code> otherwise. It is only used if <code>migration-at-start</code> is <code>true</code></p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.clean-at-start"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.clean-at-start">quarkus.liquibase.clean-at-start</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p><code>true</code> to execute Liquibase clean command automatically when the application starts, <code>false</code> otherwise.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.contexts"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.contexts">quarkus.liquibase.contexts</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>Comma-separated case-sensitive list of ChangeSet contexts to execute for liquibase.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">list of string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.labels"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.labels">quarkus.liquibase.labels</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>Comma-separated case-sensitive list of expressions defining labeled ChangeSet to execute for liquibase.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">list of string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.database-change-log-lock-table-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.database-change-log-lock-table-name">quarkus.liquibase.database-change-log-lock-table-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The liquibase change log lock table name. Name of table to use for tracking concurrent Liquibase usage.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>DATABASECHANGELOGLOCK</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.database-change-log-table-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.database-change-log-table-name">quarkus.liquibase.database-change-log-table-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The liquibase change log table name. Name of table to use for tracking change history.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>DATABASECHANGELOG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.default-catalog-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.default-catalog-name">quarkus.liquibase.default-catalog-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of Liquibase&#8217;s default catalog.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.default-schema-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.default-schema-name">quarkus.liquibase.default-schema-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of Liquibase&#8217;s default schema. Overwrites the default schema name (returned by the RDBMS) with a different database schema.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.liquibase-catalog-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.liquibase-catalog-name">quarkus.liquibase.liquibase-catalog-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of the catalog with the liquibase tables.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.liquibase-schema-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.liquibase-schema-name">quarkus.liquibase.liquibase-schema-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of the schema with the liquibase tables.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.liquibase-tablespace-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.liquibase-tablespace-name">quarkus.liquibase.liquibase-tablespace-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of the tablespace where the -LOG and -LOCK tables will be created (if they do not exist yet).</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><span class="icon"><i class="fa fa-lock" title="Fixed at build time"></i></span> <a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.change-log"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.change-log">quarkus.liquibase."named-data-sources".change-log</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The liquibase change log file. All included change log files in this file are scanned and add to the projects.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>db/changeLog.xml</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.migrate-at-start"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.migrate-at-start">quarkus.liquibase."named-data-sources".migrate-at-start</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p><code>true</code> to execute Liquibase automatically when the application starts, <code>false</code> otherwise.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.validate-on-migrate"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.validate-on-migrate">quarkus.liquibase."named-data-sources".validate-on-migrate</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p><code>true</code> to validate the applied changes against the available ones, <code>false</code> otherwise. It is only used if <code>migration-at-start</code> is <code>true</code></p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.clean-at-start"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.clean-at-start">quarkus.liquibase."named-data-sources".clean-at-start</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p><code>true</code> to execute Liquibase clean command automatically when the application starts, <code>false</code> otherwise.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.contexts"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.contexts">quarkus.liquibase."named-data-sources".contexts</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>Comma-separated case-sensitive list of ChangeSet contexts to execute for liquibase.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">list of string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.labels"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.labels">quarkus.liquibase."named-data-sources".labels</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>Comma-separated case-sensitive list of expressions defining labeled ChangeSet to execute for liquibase.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">list of string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.database-change-log-lock-table-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.database-change-log-lock-table-name">quarkus.liquibase."named-data-sources".database-change-log-lock-table-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The liquibase change log lock table name. Name of table to use for tracking concurrent Liquibase usage.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>DATABASECHANGELOGLOCK</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.database-change-log-table-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.database-change-log-table-name">quarkus.liquibase."named-data-sources".database-change-log-table-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The liquibase change log table name. Name of table to use for tracking change history.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock"><code>DATABASECHANGELOG</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.default-catalog-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.default-catalog-name">quarkus.liquibase."named-data-sources".default-catalog-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of Liquibase&#8217;s default catalog.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.default-schema-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.default-schema-name">quarkus.liquibase."named-data-sources".default-schema-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of Liquibase&#8217;s default schema. Overwrites the default schema name (returned by the RDBMS) with a different database schema.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.liquibase-catalog-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.liquibase-catalog-name">quarkus.liquibase."named-data-sources".liquibase-catalog-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of the catalog with the liquibase tables.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.liquibase-schema-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.liquibase-schema-name">quarkus.liquibase."named-data-sources".liquibase-schema-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of the schema with the liquibase tables.</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a id="quarkus-liquibase_quarkus.liquibase.-named-data-sources-.liquibase-tablespace-name"></a><code><a href="#quarkus-liquibase_quarkus.liquibase.-named-data-sources-.liquibase-tablespace-name">quarkus.liquibase."named-data-sources".liquibase-tablespace-name</a></code></p>
</div>
<div class="openblock description">
<div class="content">
<div class="paragraph">
<p>The name of the tablespace where the -LOG and -LOCK tables will be created (if they do not exist yet).</p>
</div>
</div>
</div></div></td>
<td class="tableblock halign-left valign-middle"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-middle"></td>
</tr>
</tbody>
</table>
</div>
</div>
    </div>
  </div>
</div>

  </div>

  <div class="content project-footer">
  <div class="footer-section">
    <div class="logo-wrapper">
      <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_reverse.svg" class="project-logo" title="Quarkus"></a>
    </div>
  </div>
  <div class="grid-wrapper">
    <p class="grid__item width-3-12">Quarkus is open. All dependencies of this project are available under the <a href='https://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache Software License 2.0</a> or compatible license.<br /><br />This website was built with <a href='https://jekyllrb.com/' target='_blank'>Jekyll</a>, is hosted on <a href='https://pages.github.com/' target='_blank'>Github Pages</a> and is completely open source. If you want to make it better, <a href='https://github.com/quarkusio/quarkusio.github.io' target='_blank'>fork the website</a> and show us what you’ve got.</p>

    
      <div class="width-1-12 project-links">
        <span>Navigation</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="/">Home</a></li>
          
            <li><a href="/guides">Guides</a></li>
          
            <li><a href="/community/#contributing">Contribute</a></li>
          
            <li><a href="/faq">FAQ</a></li>
          
            <li><a href="/get-started">Get Started</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Contribute</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://twitter.com/quarkusio">Follow us</a></li>
          
            <li><a href="https://github.com/quarkusio">GitHub</a></li>
          
            <li><a href="/security">Security&nbsp;policy</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Get Help</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://groups.google.com/forum/#!forum/quarkus-dev">Forums</a></li>
          
            <li><a href="https://quarkusio.zulipchat.com">Chatroom</a></li>
          
        </ul>
      </div>
    

    
      <div class="width-3-12 more-links">
        <span>Quarkus is made of community projects</span>
        <ul class="footer-links">
          
            <li><a href="https://vertx.io/" target="_blank">Eclipse Vert.x</a></li>
          
            <li><a href="https://microprofile.io" target="_blank">Eclipse MicroProfile</a></li>
          
            <li><a href="https://hibernate.org" target="_blank">Hibernate</a></li>
          
            <li><a href="https://netty.io" target="_blank">Netty</a></li>
          
            <li><a href="https://resteasy.github.io" target="_blank">RESTEasy</a></li>
          
            <li><a href="https://camel.apache.org" target="_blank">Apache Camel</a></li>
          
            <li><a href="https://code.quarkus.io/" target="_blank">And many more...</a></li>
          
        </ul>
      </div>
    
  </div>
</div>
  <div class="content redhat-footer">
  <div class="grid-wrapper">
    <span class="licence">
      <i class="fab fa-creative-commons"></i><i class="fab fa-creative-commons-by"></i> <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC by 3.0</a> | <a href="https://www.redhat.com/en/about/privacy-policy">Privacy Policy</a>
    </span>
    <span class="redhat">
      Sponsored by
    </span>
    <span class="redhat-logo">
      <a href="https://www.redhat.com/" target="_blank"><img src="/assets/images/redhat_reversed.svg"></a>
    </span>
  </div>
</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha384-8gBf6Y4YYq7Jx97PIqmTwLPin4hxIzQw5aDmUg/DDhul9fFpbbLcLh3nTIIDJKhx" crossorigin="anonymous"></script>
  <script type="text/javascript" src="/assets/javascript/mobile-nav.js"></script>
  <script type="text/javascript" src="/assets/javascript/scroll-down.js"></script>
  <script src="/assets/javascript/satellite.js" type="text/javascript"></script>
  <script src="https://quarkus.io/guides/javascript/config.js" type="text/javascript"></script>
  <script src="/assets/javascript/search-filter.js" type="text/javascript"></script>
  <script src="/assets/javascript/back-to-top.js" type="text/javascript"></script>
</body>

</html>
